Conectarea și controlul unui modul piezo (buzzer) cu ESP32
Azi m-am jucat cu un modul piezo (buzzer), care am încercat să-l controlez cu un ESP32. Un modul piezo (buzzer) este un dispozitiv care convertește energia electrica in energie mecanica (vibrații) și invers. Acest lucru se face prin intermediul unui cristal de piezoelectric, care este un material care generează o tensiune electrica atunci când este comprimat sau distorsionat mecanic. In modulul piezo, cristalul de piezoelectric este lipit de un disc metalic sau de un element de rezonanta, care amplifica vibrațiile și le transformă în sunet.
Când un semnal electric este aplicat la pinii modulului piezo (buzzer), acesta generează o tensiune electrica care cauzează comprimarea sau distorsionarea cristalului de piezoelectric. Acest lucru determina elementul de rezonanta sa vibreze, generând un sunet.
Modulul piezo (buzzer) poate fi utilizat pentru generarea unor sunete simple, cum ar fi bip-uri sau sunete de alarma, sau pentru a controla un dispozitiv mecanic, cum ar fi un motor sau un led. Este important de remarcat ca modulul piezo nu poate fi utilizat pentru a reda sunete complexe sau muzica, deoarece acesta nu are o plaja dinamica suficient de mare pentru a genera sunete cu o amplitudine variabila.
Controlarea sunetului unui modul piezo se face folosind un semnal PWM (Pulse Width Modulation). PWM-ul permite controlul intensității sunetului generat de modulul piezo prin modificarea raportului de durata de semnal pozitiv și semnal negativ.
Pentru a controla un modul piezo (buzzer) prin PWM, conectați modulul piezo la un pin de ieșire digital al ESP32 și utilizați funcția "ledcWrite" pentru a seta valoarea dorită pentru duty cycle. Cu cat este mai mare duty cycle, cu atât este mai puternic sunetul generat de modulul piezo.
Pe lângă controlarea modulului piezo am programat și un webserver unde am adăgat câteva butoane pentru a rula cântecelele (vezi codul de mai jos).
Configurarea PMW-ului
Pentru a inițializa PWM-ul pe ESP32, urmați acești pași:
- Includeți biblioteca ESP32 pentru PWM in proiectul dvs.
- Apelați funcția "ledcSetup" pentru a configura canalul PWM dorit. Aceasta funcție are următorii parametri: canal, frecventa, rezoluție.
- Apelați funcția "ledcAttachPin" pentru a atașa canalul PWM configurat anterior la pinul fizic dorit.
- Apelați funcția "ledcWrite" pentru a seta valoarea dorită pentru duty cycle-ul canalului PWM (vezi funcția my_tone).
Schema electronică/sistem
Pentru a conecta un modul piezo la un ESP32, urmați acești pași:
- Conectați pini de semnal și masa modulului piezo la pinii de pe ESP32. Pinul de semnal se conectează la un pin de ieșire digital (eu de ex. am folosit pinul D14), iar pinul de masa se conectează la un pin GND al ESP32. Pe lângă asta trebuie conectat și pinul VIN de la piezo la pinul 3V3 de la ESP32. În poza schema de mai jos am folosit un modul piezo din biblioteca Fritzing, care arată un pic diferit. Modulul meu are pinul de I/O pe mijloc.
- Utilizați biblioteca "tone" pentru a genera semnalul audio.
- In codul dvs, configurați pinul de ieșire ca pin de ieșire digital și apelați funcția tone() pentru a genera tonul dorit.
Rezultat
Interfața serverului web
Filmuleț cu demonstrația
Componente
Cod de test din Github (în primele linii comentate se află configurația pentru platformIO din Visual studio code)
Documentație proiect
- https://esp32io.com/tutorials/esp32-piezo-buzzer
- https://embeddedexplorer.com/esp32-pwm-using-ledc-peripheral/
- https://www.electronicshub.org/esp32-pwm-tutorial/
- https://lastminuteengineers.com/creating-esp32-web-server-arduino-ide/
- https://www.electronicshub.org/esp32-web-server/
- https://randomnerdtutorials.com/esp32-web-server-arduino-ide/
- https://randomnerdtutorials.com/esp32-web-server-arduino-ide/
Afiliere eMag
Linkurile de la secțiunea "Componente" conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu. Mulțumesc!eMag Genius:
Hai și tu în Genius! Abonează-te la Genius 12 luni și primești beneficii premium și 20 lei card cadou eMAG. Profită acum! eMag Genius
Mulțumesc pentru atenție!
Pentru întrebari și/sau consultanță tehnică vă stau la dispozitie pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro. O zi și seară plăcută tuturor !
La mulți ani România!